﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EntitiesLayer
{
    public class RegistroMedida: IEntity
    {

        private int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        private int idCitaPrevia;

        public int IdCitaPrevia
        {
            get { return idCitaPrevia; }
            set { idCitaPrevia = value; }
        }
        private int idEncargado;

        public int IdEncargado
        {
            get { return idEncargado; }
            set { idEncargado = value; }
        }
        private int idCliente;

        public int IdCliente
        {
            get { return idCliente; }
            set { idCliente = value; }
        }
        private DateTime fechahoraRegistro;

        public DateTime FechahoraRegistro
        {
            get { return fechahoraRegistro; }
            set { fechahoraRegistro = value; }
        }
        private decimal peso;

        public decimal Peso
        {
            get { return peso; }
            set { peso = value; }
        }
        private decimal estatura;

        public decimal Estatura
        {
            get { return estatura; }
            set { estatura = value; }
        }
        private decimal sumaPliegues;

        public decimal SumaPliegues
        {
            get { return sumaPliegues; }
            set { sumaPliegues = value; }
        }
        private decimal porcentajeMasaMuscular;

        public decimal PorcentajeMasaMuscular
        {
            get { return porcentajeMasaMuscular; }
            set { porcentajeMasaMuscular = value; }
        }
        private decimal porcentajeGrasaCorporal;

        public decimal PorcentajeGrasaCorporal
        {
            get { return porcentajeGrasaCorporal; }
            set { porcentajeGrasaCorporal = value; }
        }
        private decimal IMC;

        public decimal IMC1
        {
            get { return IMC; }
            set { IMC = value; }
        }
        private string notas;

        public string Notas
        {
            get { return notas; }
            set { notas = value; }
        }

        private EstadoRegistroMedida estado;
        public EstadoRegistroMedida Estado
        {
            set { estado = value; }
            get { return estado; }
        }

        private Lazy<IList<Pliegue>> listaPliegues;

        public IList<Pliegue> ListaPliegues {

            get { return listaPliegues != null ? listaPliegues.Value : null; }

        }

        private Lazy<IList<Perimetro>> listaPerimetros;

        public IList<Perimetro> ListaPerimetros
        {

            get { return listaPerimetros != null ? listaPerimetros.Value : null; }

        }


        //constructor para consultar
        public RegistroMedida(int idCitaPrevia, int idEncargado, int idCliente, 
            DateTime fechahoraRegistro, decimal peso, decimal estatura, 
            decimal sumaPlieges , decimal porcentajeMasaMuscular, decimal porcentajeGrasaCoporal,
            decimal IMC, string notas, EstadoRegistroMedida estado)
        { 
        
        }

        //constructor para registrar
        public RegistroMedida(int idCitaPrevia, int idEncargado, int idCliente,
            decimal peso, decimal estatura, string notas, EstadoRegistroMedida estado)
        { 
        
        
        }


    }



    public enum EstadoRegistroMedida{
        
        incompleto='I',
        completo='C'
    
    }
}
